﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinnesLayer.LogicBusiness;
using DataLayer.DAO;

namespace ClinicaSanPablo
{
    public partial class MostrarListaAcciones : System.Web.UI.Page
    {
        private System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        private Accionbl acnBL = new Accionbl();

        protected void Page_Load(object sender, EventArgs e)
        {

            int page = Convert.ToInt32(Request.QueryString["page"]);
            int limit = Convert.ToInt32(Request.QueryString["rows"]);
            string sidx = Request.QueryString["sidx"].ToString();
            string sord = Request.QueryString["sord"].ToString();

            string codigoSNC = Request.QueryString["codigoSNC"] ?? "";          

            string datos = GetAccion(sidx, sord, page, limit, codigoSNC);
            Response.ContentType = "application/json";
            Response.Write(datos);
            Response.End();

        }

        public string GetAccion(string sidx, string sord, int page, int rows, string codigoSNC)
        {
            List<Accion> lista = acnBL.ConsultarAccion(codigoSNC);

            List<object> lstFilasAfil = new List<object>();

            if (lista.Count > 0)
            {
                foreach (var acn in lista)
                {
                    var filaAfil = new
                    {
                        cell = new string[]
                        {
                            acn.DesEstado,
                            acn.DesAccion,
                            acn.NomEmpleado,
                            acn.DesArea,       
                            acn.FechaRegistro.ToString(),
                            acn.CodAccion,
                            acn.ObsAccion,
                            acn.NumDocEmpleado,
                            acn.CodEstado,
                        }                        
                    };                    
                    lstFilasAfil.Add(filaAfil);
                }

                int totalPag = (int)Math.Ceiling((decimal)rows / (decimal)lista.Count);
                var data = new
                {
                    total = totalPag,
                    // Total de páginas
                    page = page,
                    // Página actual
                    records = lista.Count,
                    // Total de registros (obtenido del modelo)
                    rows = lstFilasAfil
                };
                return jsonSerializer.Serialize(data);
            }
            else
            {
                var data = new
                {
                    total = 0,
                    // Total de páginas
                    page = 1,
                    // Página actual
                    records = 0,
                    // Total de registros (obtenido del modelo)
                    rows = ""
                };
                return jsonSerializer.Serialize(data);
            }
        } 

    }
}